System and method for filtering content on a mobile device based on contextual tagging

ABSTRACT

A system and method of contextually filtering content presented to a user on a mobile device based on contextual tagging. The user controls how content will be filtered by the mobile device by creating contextual tags and associating or tagging content with the contextual tags. The contextual tag includes a contextual behavior that is either satisfied or not based on the current context of the mobile device. During operation, content accessible to the mobile device is searched to determine which contextual tags are met based on the current context of the mobile device. Content tagged with contextual tags whose behavior is currently met based on the current context of the mobile device are filtered and presented to the user. This allows the automatic presentation of a more manageable subgroup of content to the user on the mobile device based on the current context of the mobile device.

FIELD OF THE INVENTION

The present invention relates to a system and method of filteringcontent, including but not limited to multimedia content, on a mobiledevice based on contextual tagging. Content is filtered based on whethera current context of a “contextually aware” mobile device satisfies thecontextual behavior defined in a contextual tag associated with thecontent.

BACKGROUND OF THE INVENTION

The development of small form factor, large memory capacity hard drivesand other memory devices has facilitated growth of mobile devices foraccessing and playing digital media. Mobile devices are particularlyuseful because they facilitate convenient “on-the-go” access of digitalmedia for their users. Media content is stored in local memory in themobile device for access by the user when desired. An example of such amobile device is the Apple® iPOD® media player. The Apple® iPOD® mediaplayer provides gigabytes of memory storage. Media softwareapplications, such as Apple® itunes® for example, are executed on auser's computer to store and manage the user's media library andfacilitate downloading of desired media content to local memory inmobile devices.

Given the plethora of media content available, users may not have alldesired media content stored on their mobile device. Thus, many mobiledevices are increasingly being equipped with wireless communicationcapabilities. Wireless communications allow media devices to accessmedia content not stored locally on the mobile device. Short-rangewireless communication allows users to share media content with otherusers. Many manufacturers are also adding cellular communicationcapabilities to mobile devices so that media players can access mediacontent over cellular networks from remote service providers. An exampleof such a mobile device is the Apple® iPhone®, which provides a combinedcellular phone and media player into one mobile device.

Because of the plethora of media content available to users of mobiledevices, both from locally stored and remotely accessed content, it isincreasingly important to provide filtering capabilities. Withoutfiltering, users may have to navigate through large and unmanageablemedia file listings to find desired media content. Filteringcapabilities allow content to be provided to users in more manageablesubgroups. To provide filtering, media content can be tagged with one ormore static criterion that delineates the content in some manner. Forexample, if the media content are audio files, the audio files mayinclude a genre tag. If an audio file is of a “Comedy” genre, the mediaitem may be tagged with a “Comedy” genre tag in this example. Thus, ifthe user of the mobile device only wants to access audio files in the“Comedy” genre, the mobile device can consult the genre tag of the audiofiles to only provide those files having a “Comedy” genre tag.

One disadvantage of such filtering systems is that they use static-basedcriterion and are thus non-intelligent. The filtering criterion providedby the tag does not adapt to changes in the environment or context ofthe mobile device. For example, some media items tagged with a “Comedy”genre tag may be appropriate for some contexts such as home, but not forothers such as a work place. Other media items may also be tagged withthe “Comedy” genre tag, but may be appropriate for either home or workuse. In such systems, media items tagged with “Comedy” genre tags wouldbe filtered equally. Thus, the user may not be able to filter based onthe presence of the “Comedy” genre tag effectively, because this filtermay include media items that are both appropriate and inappropriate fora particular environment or context of the mobile device. If the mobiledevice could determine which “Comedy” media items were appropriate forwhich contexts on an individualized basis, the user could effectivelyuse the “Comedy” genre filter without fear of a contextuallyinappropriate selection being made.

SUMMARY OF THE INVENTION

The present invention is a system and method of contextually filteringcontent presented to a user on a mobile device based on contextualtagging. The user controls how content will be filtered by the mobiledevice during operation by creating contextual tags and associating ortagging content with the contextual tags. The contextual tag includes adefined contextual behavior. The contextual behavior is an expressionthat is either satisfied or not based on the current context of themobile device, a set of logical rules that apply to the current contextand, an optional initial context. In this manner, the user controls thecontext that must exist for the mobile device in order for particulartagged content to be presented during operation. The user may usecontextual tags to tag content deemed appropriate for certain contexts,but inappropriate for others. The mobile device is equipped to be“context aware.” The mobile device may use a sensed context to definethe initial context of a contextual tag when created as well as thecurrent context of the mobile device during operation. The context ofthe mobile device can be any condition or surrounding able to be sensedby the mobile device, including the user's interaction with the mobiledevice that can change and can be sensed or determined.

During operation, after contextual tags have been created and assignedto content by the user, content is searched to determine which havecontextual tags whose behavior is satisfied based on the current contextof the mobile device. Content tagged with contextual tags whosecontextual behaviors are satisfied are presented to the user. This meansthe particular content was previously designated by the user to bepresented based on the current context of the mobile device. Contenttagged with contextual tags whose contextual behaviors are not satisfiedbased on the current context of the mobile device are filtered and notpresented to the user. In this manner, the present invention facilitatesmanaging and automatically being presented with a more manageablesubgroup of content on the mobile device based on the context of themobile device from the user's perspective. This is opposed to solelyfiltering content based on static-based criterion that does not adapt orchange based on the context of the mobile device.

For example, the contextual behavior defined by a contextual tag may belocation based. A location-based contextual tag may include a contextualbehavior defined as the mobile device being at or in close proximity toa specified location as the initial context. How close is decided by theuser via a logical expression assigned to the contextual tag thatdefines the desired behavior. For example, the desired behavior assignedby the user may be that the mobile device must be located within tenmiles of a work place for the contextual behavior to be satisfied. Whenthe detected current location of the mobile device (i.e. the currentcontext) indicates that the mobile device is located within ten miles ofthe work place in this example (i.e. the initial context), the behaviorwill be satisfied. The mobile device would then make any content taggedwith this location-based contextual tag available to the user.

The user can establish and associate contextual tags having any desiredbehavior with the content. A contextual tag may include only onecontextual behavior. Alternatively, a contextual tag may include morethan one contextual behavior to include a composite contextual behavior.Contextual behavior included in contextual tags can be based on anycontextual attribute(s) that can be sensed by the mobile device. Asexamples, the contextual attributes could include conditions such as thelocation of the mobile device, time of day, day of week, date, velocity,acceleration, direction of travel, weather, amount of sunlight,proximity of the mobile device to other users, state or data ofapplications running on the mobile device, or combinations thereof. Forcontextual attributes that require sensing of the mobile device'sexternal environment or surroundings, one or more context sensors orother hardware components which may be associated with the mobile devicemay be used to determine the current context of the mobile device. Inthis manner, the mobile device is “context aware.” Contextual behaviorscan also be based on the context of the user and/or their interactionwith the mobile device. For example, the user may establish contextualtags for “home” and “work” behaviors. Content assigned with a contextualtag associated with “home” behavior may not be appropriate for a “work”context, and vice versa.

The contextual tags may be established in data structures stored inassociation with the mobile device. These data structures may beimplemented using object-oriented design (OOD) principles. OOD may beparticularly well suited since it defines methods and attributes so asto associate behavior with data. For example, when a user desires tocreate a contextual tag, a tag factory object may be called upon tocreate a contextual tag object from a tag class. The tag factory mayalso be called upon to allow the user to create and associate one ormore behavior objects with contextual tag objects. A contextual tagobject does not contain any behavior evaluations. Instead, the one ormore behavior objects associated with a contextual tag object are calledupon. The behavior evaluations in the behavior objects are separatedfrom the contextual tag objects to support decoupling, thus allowingeasier reuse of behavior objects by other contextual tag objects. If theone or more contextual behavior objects associated with a contextual tagobject are satisfied by the current context according to rules and stateattributes in the behavior objects, the content tagged with thecontextual tag will be made accessible by the mobile device to the user.

In an alternative embodiment, the mobile device may allow the user tomanually force or override the current context even if the forcedcontext does not naturally exist based on the current context of themobile device. This allows a user to force the mobile device to filtercontent contextually based on the context desired by the user as opposedto the natural context sensed by the mobile device. For example, theuser may want to access all content contextually tagged with a worklocation contextual tag, but when the user is on vacation. Instead ofthe user having to retag the content designated for a work context, theuser can simply override the current context of the mobile device toforce a work location context as the current context.

In another embodiment, the mobile device may be directed to implicitlycontextually tag content without the user having to explicitly assigncontextual tags. This allows the user to later recall content based onmaking a selection from previous contexts in which the user browsedand/or accessed content. For example, as a user accesses content in anormal fashion, the mobile device may automatically and silently in thebackground and unknown to the user contextually tag the content. If theuser desires to later recall specific content, but the user can onlyremember the context in which the content was previously accessed, theuser can review and select contextual tags assigned by the mobile deviceto recall content.

The mobile device employed by the present invention may be any type ofmobile device, including but not limited to a cellular phone, a personaldigital assistant (PDA), or a portable media player, as examples. Themobile device may or may not have communication capability.Communication capabilities may include either wired communication,wireless communication, or both. If the mobile device has communicationcapability, content and/or the context of the mobile device, which isused to determine if the contextual behavior of contextual tags forfiltering are satisfied, both can be obtained from a remote system, suchas a central content server for example.

Those skilled in the art will appreciate the scope of the presentinvention and realize additional aspects thereof after reading thefollowing detailed description of the preferred embodiments inassociation with the accompanying drawing figures.

BRIEF DESCRIPTION OF THE DRAWING FIGURES

The accompanying drawing figures incorporated in and forming a part ofthis specification illustrate several aspects of the invention, andtogether with the description serve to explain the principles of theinvention.

FIG. 1 illustrates an exemplary mobile device system and networkarchitecture according to one embodiment of the present invention;

FIG. 2 is a flowchart illustrating an exemplary overall process ofestablishing contextual tags and filtering content based on whether thecurrent context of the mobile device satisfies the contextual behaviorof contextual tags associated with the content, according to oneembodiment of the present invention;

FIG. 3A illustrates an exemplary song file listing displayed on a mobiledevice before contextual filtering is activated, according to anembodiment of the present invention;

FIG. 3B illustrates an exemplary song file listing displayed on a mobiledevice after contextual filtering is activated and applied to the songlisting illustrated in FIG. 3A, according to an embodiment of thepresent invention;

FIG. 4 illustrates an exemplary mobile device architecture that may beemployed to allow the mobile device to be “contextually aware” andfilter contextually tagged content based on the context of the mobiledevice, according to one embodiment of the present invention;

FIG. 5 illustrates an exemplary tag management architecture andexemplary tags created using the tag management architecture;

FIG. 6 is a flow diagram illustrating an example of creating alocation-based contextual tag for filtering content based on the mobiledevice's location, according to one embodiment of the present invention;

FIG. 7 is a flow diagram illustrating an example of a user explicitlycreating a location-based contextual tag for content, according to oneembodiment of the present invention;

FIG. 8 is a flow diagram illustrating an example of the mobile deviceimplicitly creating a location-based contextual tag for content,according to one embodiment of the present invention;

FIGS. 9A and 9B illustrate an exemplary tag table containing examples ofcontextual tags created and associated with content, according to oneembodiment of the present invention;

FIG. 10 is a flow diagram illustrating an example of evaluating alocation-based contextual tag to determine if its location-basedbehavior is satisfied based on the current context location of themobile device, according to one embodiment of the present invention; and

FIG. 11 is a flow diagram illustrating an example of evaluating alocation-based contextual tag to determine if its location-basedbehavior is satisfied using a hypothetical location provided by the useraccording to one embodiment of the present invention.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

The embodiments set forth below represent the necessary information toenable those skilled in the art to practice the invention and illustratethe best mode of practicing the invention. Upon reading the followingdescription in light of the accompanying drawing figures, those skilledin the art will understand the concepts of the invention and willrecognize applications of these concepts not particularly addressedherein. It should be understood that these concepts and applicationsfall within the scope of the disclosure and the accompanying claims.

The present invention is a system and method of contextually filteringcontent presented to a user on a mobile device based on contextualtagging. The user controls how content will be filtered by the mobiledevice during operation by creating contextual tags and associating ortagging content with the contextual tags. The contextual tag includes adefined contextual behavior. The contextual behavior is an expressionthat is either satisfied or not based on the current context of themobile device, a set of logical rules that apply to the current contextand, an optional initial context. In this manner, the user controls thecontext that must be present for the mobile device in order forparticular tagged content to be presented during operation. The user mayuse contextual tags to tag content deemed appropriate for certaincontexts, but inappropriate for others. The mobile device is equipped tobe “context aware.” The mobile device may use a sensed context to definethe initial context of a contextual tag when created as well as thecurrent context of the mobile device during operation. The context ofthe mobile device can be any condition or surrounding able to be sensedby the mobile device, including the user's interaction with the mobiledevice that can change and can be sensed or determined.

During operation, after contextual tags have been created and assignedto content by the user, content is searched to determine which havecontextual tags whose behavior is satisfied based on the current contextof the mobile device. Content tagged with contextual tags whosecontextual behaviors are satisfied are presented to the user. This meansthe particular content was previously designated by the user to bepresented based on the current context of the mobile device. Contenttagged with contextual tags whose contextual behaviors are not satisfiedbased on the current context of the mobile device are filtered and notpresented to the user. In this manner, the present invention facilitatesmanaging and automatically being presented with a more manageablesubgroup of content on the mobile device based on the context of themobile device from the user's perspective. This is opposed to solelyfiltering content based on static-based criterion that does not adapt orchange based on the context of the mobile device.

For example, the contextual behavior defined by a contextual tag may belocation based. A location-based contextual tag may include a contextualbehavior defined as the mobile device being at or in close proximity toa specified location as the initial context. How close is decided by theuser via a logical expression assigned to the contextual tag thatdefines the desired behavior. For example, the desired behavior assignedby the user may be that the mobile device must be located within tenmiles of a work place for the contextual behavior to be satisfied. Whenthe detected current location of the mobile device (i.e. the currentcontext) indicates that the mobile device is located within ten miles ofthe work place in this example (i.e. the initial context), the behaviorwill be satisfied. The mobile device would then make any content taggedwith this location-based contextual tag available to the user.

The user can establish and associate contextual tags having any desiredbehavior with the content. A contextual tag may include only onecontextual behavior. Alternatively, a contextual tag may include morethan one contextual behavior to include a composite contextual behavior.Contextual behavior included in contextual tags can be based on anycontextual attribute(s) that can be sensed by the mobile device. Asexamples, the contextual attributes could include conditions such as thelocation of the mobile device, time of day, day of week, date, velocity,acceleration, direction of travel, weather, amount of sunlight,proximity of the mobile device to other users, state or data ofapplications running on the mobile device, or combinations thereof. Forcontextual attributes that require sensing of the mobile device'sexternal environment or surroundings, one or more context sensors orother hardware components which may be associated with the mobile devicemay be used to determine the current context of the mobile device. Inthis manner, the mobile device is “context aware.” Contextual behaviorscan also be based on the context of the user and/or their interactionwith the mobile device. For example, the user may establish contextualtags for “home” and “work” behaviors. Content assigned with a contextualtag associated with “home” behavior may not be appropriate for a “work”context, and vice versa.

FIG. 1 illustrates an exemplary system and network architecture 10 formobile devices that may employ a contextual filtering system and methodaccording to embodiments of the present invention. The mobile devicearchitecture 10 in FIG. 1 will be described in conjunction with FIG. 2,which is a flowchart illustrating an exemplary contextual filteringprocess. The contextual filtering process involves contextually taggingcontent with contextual tags. The mobile device filters content based onwhether the current context of the mobile device satisfies thecontextual behavior of the contextual tag associated with the content.As illustrated in FIG. 1, an exemplary platform for a mobile device 12is provided. The mobile device 12 includes an output device 14, such asa display, and an input device 16, such as input keys, to allow a user18 to control, interact, and be presented content on the mobile device12. The mobile device 12 may include a cellular handset with anaccompanying cellular antenna 20 for cellular communications. However,the mobile device 12 can be any type of device adapted to store andmanage digital content, including but not limited to a personal dataassistant (PDA), a personal media player (PMP), or other handhelddevice. The mobile device 12 can include multimedia relatedfunctionality, including searching, organizing, browsing, previewing,rendering, and/or sharing/transferring content. In one embodiment of thepresent invention, one or more mobile devices 12 may be included thatparticipate in a wirelessly-connected network 22. However, it should beunderstood that the present invention does not require the mobile device12 to be networked. Further, the mobile device 12 may be connected to awired network.

Before any content can be tagged, the user 18 first establishes one ormore contextual tags (step 30, FIG. 2). Because contextual tags aredefined by contextual behaviors, the user 18 associates one or morecontextual behaviors with the contextual tags (step 30). A contextualbehavior may be a logical expression that can be determined as eitherbeing satisfied or not based on the current context of the mobile device12. An initial context or state may also be associated with thecontextual tag. The initial context may be used as part of thecontextual behavioral expression to determine if the current context ofthe mobile device 12 satisfies the contextual behavior. For example, ifthe contextual behavior is location-based, the desired location in orderfor the behavior to be satisfied is stored as an initial context orlocation. The initial location (i.e. initial context) may be a hardcoded location that is not programmable by the user 18. For example, theinitial location may be a known place or location. Alternatively, theinitial location (i.e. initial context) may be programmable. The initiallocation may be directly set by the user 18, or directed by the user 18to be set by the context sensed by the mobile device 12 when thecontextual tag is created. In any of these cases, this allows the mobiledevice 12 during operation to compare the current location (i.e. currentcontext) of the mobile device 12 to the initial location (i.e. initialcontext) stored within the location-based contextual behavior associatedwith the contextual tag to determine if the location-based contextualbehavior is satisfied.

The user 18 next associates or tags content with established contextualtags (step 32). This content may be stored locally on the mobile device12, or the content may be accessible over the network 22 from a remoteservice provider. The remote service provider may include a contentserver 24 that provides content 26 from a server database 28 madeaccessible over the network 22. The content 26 in the server database 28may be downloaded to the mobile device 12. Alternatively, the mobiledevice 12 may stream content 26 in lieu of a permanent download. In anycase, the user 18 does not have to associate a contextual tag with allcontent accessible to the mobile device 12. However, the mobile device12 may filter out content that is not tagged with a contextual tag. Thisis because untagged content will not be associated with a contextualbehavior that can be satisfied. Alternatively, the mobile device 12 canbe configured to present any content to the user 18 that is notcontextually tagged.

The user 18 continues establishing contextual tags and/or contextuallytagging content until satisfied that all desired content is contextuallytagged with the desired behaviors (decision 34). Once the user 18 hasfinished the desired contextual tagging of content, the mobile device 12can perform contextual filtering. The mobile device 12 can first updatethe current context to store the most current context of the mobiledevice 12 before filtering begins (step 36). The current context can bebased on sensing environmental or surrounding conditions of the mobiledevice 12, or can be based on sensing internal conditions of the mobiledevice 12, such as the operation of an application or the user's 18interaction with the mobile device 12, including its applications. Themobile device 12 can next scan contextually tagged content accessible tothe mobile device 12 (step 38). If content has been contextually tagged,the mobile device 12 determines if the contextual behavior associatedwith the contextual tag for the content is satisfied (decision 40). Ifso, the mobile device 12 allows the content to be presented to the user18 (step 42). If not, the mobile device 12 filters out the content frompresentation to the user 18 since the contextual behavior associatedwith its contextual tag is not presently satisfied (step 44). Forcontent that is not contextually tagged and thus has no associatedcontextual behavior, the mobile device 12 can be configured to eitherautomatically filter untagged content out (step 44) or present untaggedcontent to the user 18 (step 42).

The mobile device 12 next determines if all the content accessible tothe mobile device 12 has been scanned (decision 46). If not, the mobiledevice 12 repeats the filtering process in steps 38-44 (FIG. 2) based onthe current context, until all contextually tagged content has beenscanned and its contextual behavior analyzed. Once all contextuallytagged content has been scanned and analyzed, the mobile device 12allows the user to either change, establish, and/or associate contextualtags with content (steps 30, 32). The mobile device 12 thereafterupdates the current context (step 36) and continues with the filteringprocess (steps 38-46) in a repeating fashion. In this manner, the mobiledevice 12 automatically and dynamically contextually filters contentbased on the current context of the mobile device 12.

To further illustrate the contextual filtering process and methoddiscussed in FIGS. 1 and 2 and according to embodiments of the presentinvention, FIGS. 3A and 3B are provided. FIGS. 3A and 3B illustrate anexample of a content listing on a mobile device 12 before and aftercontextual filtering is performed. FIG. 3A illustrates an exemplarymobile device 12 in the form of a media player displaying a song filelisting before any contextual filtering is performed. Two classicalgenre selections are included among other pop genre song listings.Assuming the user 18 has associated a work location contextual tag toonly the classical songs, and assuming the mobile device 12 determines,based on the current context, that the mobile device 12 is located atwork, the contextual filtering of the present invention will onlypresent the classical selections to the user 18 when at work. The mobiledevice 12 uses the current context (i.e. a location) to determine thatthe contextual behavior associated with the classical songs issatisfied. In this regard, FIG. 3B illustrates the same song listing onthe mobile device 12 in FIG. 3A, but after contextual filtering isactivated. Note that only the classical songs are listed on the display14.

As discussed above, the mobile device 12 determines its current contextto perform contextual filtering of content tagged with contextual tagsaccording to embodiments of the present invention. The context of themobile device 12 may be based on external conditions or surroundings, orinternal conditions of the mobile device 12. For example, the currentcontext may be based on an application executing internally on themobile device 12 or the user's 18 interaction with the mobile device 12and/or this application. The current context may also be based onexternal conditions or surroundings of the mobile device 12. In thiscase, the mobile device 12 may be equipped with one or more contextsensors and/or other sensing devices that allow the mobile device 12 todetermine its surroundings or environment. For example, if a contextualbehavior associated with a particular contextual tag is location-based,the mobile device 12 needs to be able to determine its current location.The current location is used to analyze whether contextual tags havinglocation-based behaviors are satisfied. In this regard, an exemplarymobile device 12 architecture is illustrated in FIG. 4 and discussedbelow.

As illustrated in FIG. 4, an internal architecture of an exemplarymobile device 12 is shown. The mobile device 12 can bemicroprocessor-based and include a number of components, including butnot limited to a control system(s) to control the operation of themobile device 12. In order to sense current context, one or more contextsensors may be provided in the form of one or more hardware sensors 50.These sensors 50 provide intrinsic support for generating contextinformation to be used in determining if contextual behaviors associatedwith contextual tags are satisfied. These contextual sensors 50 caninclude global positioning system (GPS) sensors 52 to determine currentlocation of the mobile device 12 in the event that any contextualbehaviors are location based. Alternatively or in addition, the GPSsensors 52 may be used to determine speed, acceleration, and/ordirection of travel behaviors of the mobile device 12. A WiFi accesspoint 53 may be included and used in combination with GPS sensors 52 todetermine location of the mobile device 12 using triangulation. Themobile device 12 may also use available resources via communications toother users and their devices in proximity to the mobile device 12,including near field communications (NFC) for example, to determinecurrent context, including location.

A microphone 54 is another example of a contextual hardware sensor 50that may be provided to determine noise level surrounding the mobiledevice 12. This may include ambient noise. Yet another example of acontextual hardware sensor 50 is a light meter 56. The mobile device 12may include a light meter 56 to detect the surrounding light conditionas part of detecting the current context. The contextual hardwaresensors 50 can be any device or component that can sense a condition,surrounding, or behavior regarding the mobile device 12.

If a more precise determination of time is desired other than thepresence or lack of light, a clock 58 may be provided. The clock 58 maybe provided in lieu or in addition to the light meter 56. The clock 58enables the mobile device 12 to determine the current time of day ascontextual information that may be used to evaluate contextual behavior.The clock 58 may be updated using network communications via a networkconnectivity component 60 as is common in cellular phones. The networkconnectivity component 60 also allows the mobile device 12 to maintain aconnection with server systems that might further aid in determining themobile device's 12 current context. The network connectivity component60 may also be used for downloading and/or otherwise transferring mediacontent to and from the mobile device 12, including but not limited tothe content server 24 (see FIG. 1).

User interface components 62 may also be provided to allow the user 18to interact with the mobile device 12. The user interface components 62may include input devices, such as a keyboard, touch screen, or otherbuttons to allow the user 18 to provide input, including establishingand contextually tagging content. The user interface components 62 mayalso include output devices, such as a display, microphone, and/or aspeaker for speech and sound output, to provide content to the user 18in human-readable form. A software application (s) 64 may be included todrive the overall functionality of the mobile device 12, includingoperations based on receiving input from the user 18 and providingoutput to the user 18, via the user interface components 62.

A content database 66 may be provided to store content (includingmultimedia content) accessible to the mobile device 12. The softwareapplication 64 accesses the content database 66 to retrieve informationregarding content available on the mobile device 12. The softwareapplication 64 provides this information to the user 18 via the outputdevices in the user interface components 62. The user 18 can then selectparticular content available in the content database 66 via inputdevices in the user interface components 62.

The content database 66 may also contain a tag table 68 to storecontextual tags created by the user 18. The tag table 68 is also adaptedto store the associations between the contextual tags and the contentaccessible by the mobile device 12 as part of the contextual taggingaspects of the present invention. The tag table 68 is consulted todetermine if a contextual tag associated with content has contextualbehavior that is satisfied based on the current context of the mobiledevice 12 as part of the contextual filtering of the present invention.One embodiment of the tag table 68 could include an instance of acontextual tag having a foreign key of the content item. The foreign keycould be used as a primary key to access content from a table of contentitems stored in the content database 66.

Non-volatile memory (NVM) 70 can also be provided in the mobile device12. The NVM 70 may be used to store content in the content database 66as well as the contextual tags and their associations with content inthe tag table 68 persistently across power cycles of the mobile device12. When the mobile device 12 is powered on, the content and thecontextual tags could be moved from NVM 70 to volatile storage in thecontent database 66 and tag table 68, including but not limited to cachememory. The NVM 70 could be solid state (NVRAM) or magnetic media (HDD),as examples.

A tag management component 72 may also be provided in the mobile device12 to facilitate contextual tag management. Particularly, the tagmanagement component 72 may facilitate the creation, editing, deleting,accessing, and managing of contextual tags. The tag management component72 facilitates access to contextual tags in the tag table 68 todetermine if their associated contextual behaviors are satisfied by thecurrent context of the mobile device 12 as part of the contextualfiltering provided by the present invention. The tag managementcomponent 72 also facilitates creation of contextual tags in response touser 18 requests provided via the application software 64. The tagmanagement component 72 also facilitates user 18 requests to set up andassociate one or more contextual behaviors with contextual tags. The tagmanagement component 72 can also facilitate storing the user's 18requests to tag content with particular contextual tags in the tag table68 for use in contextual filtering.

In one embodiment of the present invention, object-oriented design (OOD)principles are employed in the tag management component 72 to createcontextual tags and associate contextual behaviors with the contextualtags. OOD may be particularly well suited for this function since OODdefines methods and attributes so as to associate behavior with data.FIG. 5 illustrates examples of three kinds of tags that could be createdby the tag management component 72 and stored in the tag table 68. Theseare a simple tag 74, a contextual tag 76, and a contextual tag withcomplex or composite behavior 78. A simple tag 74 is a static-based tagthat does not have a true contextual behavior. The contextual tags 76,78 include a contextual behavior based on the current context of themobile device 12. In this example, these tags 74, 76, 78 are created inthe form of tag objects 80, 82 implemented using object-oriented (OO)techniques. These tags 74, 76, 78 are expressed in the tag table 68 astag objects 80, 82. Any one of these tags may be associated with contentin the mobile device 12 as part of a filtering process. The presentinvention involves the use of contextual tags 76, 78 in particular as amethod of contextually filtering content presented by the mobile device12. However, the present invention does not exclude the additional useof simple tags 74 being associated with content as part of the filteringprocess performed by the mobile device 12 as well.

If the user 18 directs the mobile device 12 to create a simple tag 74, acall may be made to a tag factory in the tag management component 72[e.g. createSimpleTag(name: string): void]. In response, the simple tag74 is created in the form of a simple tag object 80 according to thisOOD embodiment. As illustrated in FIG. 5, the simple tag object 80includes a name attribute in the form of a string to identify the tag. Asimple tag 74 is not based on behavior and thus is not expressed basedon the current context of the mobile device 12. Content tagged with asimple tag 74 can only be filtered based on a static-based filteringcriteria either matching or not matching the name of the simple tagobject 80. For example, a simple tag 74 for audio content may be “Rock”genre. If the user 18 selects “Rock” genre to be selected, contenttagged with the “Rock” genre tag will be made available to the user 18.

If the user 18 directs the mobile device 12 to create a contextual tag76, as opposed to a simple tag 74, a call may be made to a tag factoryin the tag management component 72. In response, a contextual tag object82 may be created from a tag class according to this OOD embodiment asillustrated in FIG. 5. The user 18 may choose to create a contextual tag76 assigned with built-in behaviors [e.g. createBuiltinTag(type: String,name: string): void], or “user-defined” behaviors [e.g.createUserTag(name: string, behavior: Behavior):void]. A “built-in”contextual tag is a contextual tag that is assigned a behavior, via aBehavior object 84, whose rules already defined and stored in the tagmanagement component 72. For example, the mobile device 12 manufacturermay have created these built-in behaviors during manufacture of themobile device 12. These built-in behaviors may be based on theparticular hardware or software configuration of the mobile device 12.These behaviors have fixed rules and are registered with the tag factoryin the tag management component 72 when the mobile device 12 is poweredon. The user 18 can control the context that must be satisfied (i.e.initial context) by selecting which built-in behavior types areassociated with a contextual tag 76. For example, a built-in contextualtag may have a “weekend” behavior such that content tagged with the“weekend” contextual tag will be made available to the user 18 only onweekend days.

Alternatively, the user 18 can direct the mobile device 12 to create a“user-defined” contextual tag. A “user-defined” contextual tag is acontextual tag 76 assigned with user-defined behaviors. The usercontrols the context in which content is to be presented by the mobiledevice 12 by defining the desired behavior. The tag factory in the tagmanagement component 72 may be called upon to create a “user-defined”contextual tag. A contextual tag object 82 is created in response.However, unlike “built-in” contextual tags, a user 18 can define andassign user-defined behaviors with a “user-defined” contextual tagaccording to the mobile device 12 application state and rules, allowingopen-ended functionality.

In either the case of a “built-in” or “user-defined” contextual tag, aBehavior object 84 is associated with the contextual tag object 82 andcalled upon to determine if the assigned behavior is satisfied based onthe current context of the mobile device 12. The Behavior object 84contains a “user-defined” behavior for “user” contextual tags as opposedto a “built-in” behavior for “built-in” contextual tags. The behaviorsare expressed by logical statements that are evaluated based on thecurrent context of the mobile device 12. The Behavior object 84 can alsocontain an initial context attribute if the behavior logical expressionis based on a relationship between the current context of the mobiledevice 12 and an initial context when the contextual tag was created.For example, if the contextual tag is location-based, the logicalexpression in the Behavior object 84 may be based on whether the currentcontext location of the mobile device 12 (i.e. a current context) iswithin a certain distance of the initial location (i.e. initialcontext). In this manner, the user 18 can associate the behavior to besatisfied based on the context of the mobile device 12 when the contentwas first tagged. For example, if the user 18 tags content with a worklocation contextual tag when the user 18 is at work, the work locationwill be stored in the initial context using the contextual sensor 50 todetermine the desired location automatically for the user 18. The mobiledevice 12 can subsequently determine if the work contextual tag behavioris satisfied based on a comparison of the current context location withthe location stored in the initial context when the contextual tag wascreated.

Additionally, the present invention also allows a user 18 to create acomposite contextual tag 78. A composite contextual tag 78 is one whichincludes multiple contextual behaviors that must be satisfied. Acomposite contextual tag 78 is created in the OOD embodiment illustratedin FIG. 5 similar to a contextual tag 76. A contextual tag object 82 iscreated just as before. However, the contextual tag object 82 inherits aComposite Behavior object 86, which allows a simple Boolean operation tobe applied to multiple Behavior objects 84. These multiple Behaviorobjects 84 can include both “user-defined” and “built-in” behaviors. Forexample, the composite behavior could be comprised of two (2) mileswithin a coffee shop, and in the evening or in the morning. Thus,content tagged with this composite contextual tag will be made availableif the time is morning or evening, and the mobile device 12 is locatedwithin two (2) miles of a coffee shop.

To further illustrate how contextual tags can be created according toembodiments of the present invention, FIG. 6 illustrates a flow diagramthat provides an example of creating a “user-defined” location-basedcontextual tag. This example is consistent with the OOD examples ofcontextual tags previously discussed in FIG. 5. As illustrated in FIG.6, the process begins with a client call to create a location-basedcontextual tag to the tag management component 72 (step 100). Inresponse, the tag management component creates a new contextual tagobject 82 (step 102). A new Behavior object 84 is created for the newcontextual tag object 82 (step 104). Because the contextual tag isdefined as a location-based contextual tag, the Behavior object 84requests the current location of the mobile device 12 by consulting thehardware sensors 50, namely the GPS 52 (step 106). The current locationis returned (step 108) so that the initial location (context) of theBehavior object 84 can be set with the returned current location (step110). The initial location (context) is representative of the locationthat must be satisfied by the Behavior object 84 when performing thecontextual filtering process. Thus, when the mobile device 12 laterduring operation comes back into the same area as the initial location,the Behavior object 84 will be satisfied, indicative of the mobiledevice 12 being currently located in an area where the Behavior object84 was first created. Thus, the location-based behavior will besatisfied. The content tagged with this location-based contextual tagwill be made available to the user 18.

After the contextual tag object 82 and its Behavior object 84 (includingdefining in the initial context with the current location of the mobiledevice 12) is created, the newly created contextual tag is stored in thetag table 68 (step 112). An identification (ID) of the contextual tag isreturned to the calling application to identify the contextual tag (step114). The contextual tag, via the ID, can then be used to tag contentwith the location-based behavior of the contextual tag as desired.

Contextual tagging can be performed either explicitly or implicitly.Content can be contextually tagged explicitly as a result of the user 18making an explicit request to the mobile device 12 via the userinterface 62. Alternatively, the mobile device 12 may be directed toimplicitly contextually tag content without the user 18 explicitlydirecting or controlling the contextual tagging of content. This allowsthe user 18 to later recall content based on selecting from previouscontexts in which the user 18 browsed and/or accessed content on themobile device 12. For example, as a user 18 accesses content in a normalfashion, the mobile device 12 may automatically and silentlycontextually tag content accessed by the user 18. If the user 18 desiresto later recall specific content, but the user 18 can only remember thecontext in which the content was previously accessed, the user 18 canreview and select contextual tags assigned by the mobile device 12 torecall content. This allows the user 18 to recall and access content bycontext as opposed to having to recall the identification of the contentitself.

In this regard, FIGS. 7 and 8 illustrate flow diagrams that show byexample how a location-based contextual tag may be created explicitly orimplicitly. FIG. 7 illustrates an example of the user 18 explicitlycreating a location-based contextual tag for content. FIG. 8 illustratesan example of the mobile device 12 implicitly creating a location-basedcontextual tag for content.

Turning to FIG. 7, the user 18 directs the user interface 62 to requestparticular content. In response, the user interface 62 sends the requestto the application software 64 executing on the mobile device 12 (step120). The application software 64 sends a query for the contentspecified by the user 18 to the content database 66 (step 122). Thecontent is then returned to the application software 64 (step 124), andfrom the application software 64 to the user 18 via the user interface62 (step 126). The user 18 may then decide to contextually tag theretrieved content. If so, a request is sent from the user interfacecomponent 62 to the application software 64 to contextually tag thecontent with a location-based contextual tag (step 128). In response,the application software 64 sends a request to the tag managementcomponent 72 to create a location-based contextual tag based on themobile device's 12 current location (step 130). The tag managementcomponent 72 creates the location-based contextual tag (step 132). Thisprocess can involve the steps provided in the flow diagram of FIG. 6 forexample. After the location-based contextual tag is created, the ID ofthe contextual tag is returned to the application software (step 134).The application software 64 then in turn requests the content database66 tag the content with the newly created location-based contextual tagin the tag table 68. In this manner, the content is now contextuallytagged with a contextual behavior based on the current location of themobile device 12.

FIG. 8 illustrates the mobile device 12 implicitly contextually taggingcontent. This feature may be particularly useful to allow a user 18 torecall previously accessed context where the user 18 may only rememberthe context in which the content was previously accessed. The user 18can review a listing of contextual tags as opposed to content listingsto recall content accessed in the remembered content. The process beginsby the user 18 requesting specific content via the user interfacecomponent 62. The user interface component 62 passes the user's 18request to the application software 64 (step 140). The applicationsoftware 64 sends a query for the content specified by the user 18 tothe content database 66 (step 142). The content is then returned to theapplication software 64 (step 144). The application software 64 thenbegins playback of the requested content (step 146). In the backgroundand unknown to the user 18, the application software 64 also requestscreation of a location-based contextual tag to the tag managementcomponent 72 (step 148). The tag management component 72 creates thelocation-based contextual tag (step 150). This process can involve thesteps provided in the flow diagram of FIG. 6 for example. The tagmanagement component 72 then returns the ID for the contextual tag tothe application software (step 152). The application software 64 (asopposed to the user 18) requests the content database 66 to contextuallytag the content being played back with the newly created location-basedcontextual tag (step 154). Thus, if the user 18 cannot remember thecontent, but can remember the context of the mobile device 12 in whichit was accessed (which in this example is the location), the user 18 canbrowse content based on contextual tags previously established. The user18 may then be able to easily remember and identify the desired content.

As discussed above in the flow diagram examples of creating contextualtags in FIGS. 6 through 8, after the tag management component 72 is usedto create tags (including simple and contextual tags 74, 76, 78), thesetags and their associated behaviors and associations with content can bestored in the tag table 68. The tag table 68 is consulted by the mobiledevice 12 during operation to determine whether contextual behaviorsassociated with contextual tags are satisfied based on the currentcontext of the mobile device 12. FIGS. 9A and 9B illustrate an exemplarytag table 68 to further illustrate contextual tagging. The tags storedin the tag table 68 are stored in rows. A tag data type 160 is providedin the far left column to identify the type of tag in the table. The tagtype can either be a simple tag (“Tag”) or a contextual tag (“ContextualTag”). All tags have a name 162 in this example, but as previouslydiscussed, only contextual tags have a behavior data type 164 (“BehaviorData Type”). The behavior data type 164 further consists of an initialcontext state 166 (“Initial State”) and the contextual behavior, whichis provided in the form of rules 168 (“Rules”) or a logical expression.The rules 168 determine whether the contextual behavior is satisfiedbased on the current context of the mobile device 12. The logicalexpression can consist of multiple expressions using Booleanrelationships. If the rules 168 for a particular contextual tag are notdependent on an initial context state 166, the initial context state 166may be left blank.

If the contextual tag is of the composite behavior type, more than onebehavior expression or object is provided. Thus, one or more “child”behaviors 170, 172, 174 (“Child Behavior”) may be provided in the tagtable 68. The composite contextual tag has multiple behaviors that mustbe met based on the current context of the mobile device 12 in order forthe composite contextual tag to be satisfied. Only composite contextualtags contain information in the child behavior columns 170, 172, 174.The child behaviors 170, 172, 174 also each contain a behavior data typefield, an initial context state, and rules so that whether a childbehavior is satisfied based on the current context of the mobile device12 can be determined. Defining contextual tags in the form of compositecontextual tags may be particularly useful if each of the desiredbehaviors are already defined in the tag management component 72. Inthis case, rather than defining a new or complex contextual behavior,the user 18 can simply assign multiple and/or existing contextualbehaviors to the contextual tag. Thus, in the case of the OOD embodimentexample in FIG. 5, contextual behavior objects can be reused tofacilitate efficient programming and memory needed to store contextualbehavior objects.

After contextual tags have been created and assigned to content by theuser 18, the mobile device 12 can perform contextual filtering based onthe current context of the mobile device 12. In this embodiment of thepresent invention, the mobile device 12 contextually filters contentbased on the current context of the mobile device 12 for both simple andcontextual tags 74, 76, 78. Simple tags can simply be defined as havinga behavior always being met or true independent of the current contextof the mobile device 12. Thus, the mobile device 12 can contextuallyfilter content for all tagged content in the same manner since thebehavior for simple tags is hardcoded as always being satisfied. Thishas the advantage of providing the same operation and algorithms for alltagged content. In this regard, FIGS. 10 and 11 illustrate flow diagramsthat provide examples of evaluations of whether a location-basedcontextual tag is satisfied for content such that it will be presentedto the user 18.

FIG. 10 illustrates a flow diagram that provides an example of anevaluation of whether a location-based contextual tag is satisfied forcontent based on the current location of the mobile device 12. If thecurrent location of the mobile device 12 satisfies the contextualbehavior associated with the location-based contextual tag, the contenttagged with the location-based contextual tag will be presented to theuser 18. The process starts by the application software 64 providing arequest to the tag management component 72 to determine if the behaviorof a particular location-based contextual tag associated with content issatisfied, meaning it evaluates true (step 180). The tag managementcomponent 72 provides a search request to find the specified contextualtag from the tag table 68 (step 182). This is because the contextualtags and their associated behavior are stored in the tag table 68. Thetag table 68 returns the contextual tag requested (step 184). The tagmanagement component 72 calls upon the contextual tag object 82 todetermine if its behavior is satisfied (step 186). The contextual tagobject 82 calls upon its Behavior object 84 in response (step 188). Thecurrent context, and in this example the current location, of the mobiledevice 12 is requested via access to the hardware sensor(s) 50 (step190). The current location is returned to the Behavior object 84 (step192), and the behavior expression in the Behavior object 84 isdetermined as either being satisfied or not (step 194). If satisfied,this means that the mobile device 12 is located in the proper relationto the location stored as the initial location in the contextualbehavior of the location-based contextual tag. The result of whether thecontextual behavior is satisfied is then sent to the contextual tagobject 82 (step 196), which in turn is sent to the tag managementcomponent 72 (step 198) and the application software 64 (step 200). Theapplication software 64 can then determine whether to present the taggedcontent to the user 18 based on whether the contextual behaviorassociated with the location-based contextual tag is satisfied.

FIG. 11 illustrates a flow diagram that provides an example of anevaluation of whether a location-based contextual tag is satisfied forcontent based on a hypothetical location of the mobile device 12. Thisis performed when the user 18 manually forces or overrides the currentcontext of the mobile device 12 even if the forced context does notnaturally exist at the time. An override context received from the user18 may be used in place of a current context of the mobile device (e.g.in step 34 of FIG. 2). If the contextual behavior associated with thecontextual tag is satisfied by the hypothetical context, the mobiledevice 12 presents the content associated with the contextual tag to theuser 18. This allows the user 18 to force the mobile device 12 topresent content tagged with a contextual tag having a certain contextualbehavior even if the mobile device 12 does not have a current contextthat satisfies the given contextual behavior. For example, the user 18may desire to be presented with content tagged with a home locationcontextual tag when the user 18 is on vacation. Although the currentcontext of the mobile device 12 is not home, the user 18 may deemcontent tagged with this location-based contextual tag to still beappropriate or desired on vacation.

The process starts by the application software 64 requesting andreceiving in response, recently used context data from the hardwaresensor(s) 50 (steps 210, 212). These optional steps allow the user 18 tobe presented with past contextual data to use as the hypotheticallocation as opposed to the user selecting a location that may have notever been associated with a contextual tag as the initial context. Theapplication software 64 may then provide a request to the tag managementcomponent 72 to determine if a particular location-based contextual tagassociated with content is satisfied given the hypothetical location(step 214). The tag management component 72 provides a search request tofind the specified contextual tag from the tag table 68 (step 216). Thisis because the contextual tags and their associated behaviors are storedin the tag table 68. The tag table 68 returns the contextual tagrequested (step 218). The tag management component 72 then calls uponthe contextual tag object 82 to determine if its behavior is satisfiedor not based on the hypothetical location (step 220). The contextual tagobject 82 calls upon its Behavior object 84 in response (step 222). Thebehavior expression in the Behavior object 84 is determined as eitherbeing satisfied or not (step 224). Note that unlike the flow diagramexample in FIG. 10, a consultation of the hardware sensor(s) 50 is notnecessary before this step is performed since a hypothetical location isused in place of one detected by the mobile device 12.

If the Behavior object 84 is satisfied, this means that the hypotheticallocation satisfies the location stored as the initial context in thelocation-based contextual tag. The result of whether the behavior issatisfied is then sent to the contextual tag object 82 (step 226), whichin turn is sent to the tag management component 72 (step 228) and theapplication software 64 (step 230). The application software 64 can thendetermine whether to present the content to the user 18 based on whetherthe behavior associated with the location-based contextual tag issatisfied.

Those skilled in the art will recognize improvements and modificationsto the preferred embodiments of the present invention. All suchimprovements and modifications are considered within the scope of theconcepts disclosed herein and the claims that follow.

What is claimed is:
 1. A method of filtering content, comprising thesteps of: determining a current context of a mobile device; determiningif a behavior of a contextual tag associated with content accessible tothe mobile device is satisfied by the current context; and determiningif the content is to be presented on the mobile device based on thedetermining if the behavior is satisfied.
 2. The method of claim 1,further comprising presenting the content on the mobile device if thebehavior is satisfied.
 3. The method of claim 1, further comprising notpresenting the content on the mobile device if the behavior is notsatisfied.
 4. The method of claim 1, wherein the contextual tag is acomposite contextual tag; wherein if a the determining if the behavioris satisfied comprises determining if multiple behaviors of thecomposite contextual tag associated with content accessible to themobile device is satisfied by the current context; and wherein thedetermining if the content is to be presented on the mobile devicecomprises determining if the content is to be presented on the mobiledevice based on the determining if the multiple behaviors are satisfied.5. The method of claim 1, wherein the determining a the current contextof a the mobile device comprises receiving information from at least onecontext sensor associated with the mobile device.
 6. The method of claim1, further comprising: determining if a static condition of a simple tagassociated with content accessible to the mobile device is satisfied;and based on the determining if the static condition is satisfied,determining if the content is to be presented on the mobile device. 7.The method of claim 1, wherein the determining if a the behavior issatisfied by the current context comprises determining if a the behaviorof a the contextual tag associated with the content accessible to themobile device is satisfied by the current context based on an initialcontext of the contextual tag.
 8. The method of claim 7, wherein thecontextual tag is a location-based contextual tag wherein the initialcontext is an initial location of the mobile device when the contextualtag was created and the current context is a current location of themobile device.
 9. The method of claim 1, further comprising receiving anexplicit request to create the contextual tag prior to the determiningif a the behavior is satisfied.
 10. The method of claim 1, furthercomprising implicitly creating the contextual tag and associating thecontextual tag with the content in response to a user requesting accessto the content.
 11. The method of claim 10, wherein the contextual tagis a location-based contextual tag and the current context is a currentlocation of the mobile device, wherein the determining if a the behavioris satisfied by the current context comprises determining if a thebehavior of a the contextual tag associated with the content accessibleto the mobile device is satisfied by the current location based on aninitial location of the mobile device when the contextual tag wasimplicitly created.
 12. The method of claim 1, further comprisingreceiving an override context from a user and replacing the currentcontext with the override context; wherein the determining if a thebehavior is satisfied comprises determining if a the behavior of a thecontextual tag associated with the content accessible to the mobiledevice is satisfied by the override context.
 13. The method of claim 1,further comprising: receiving a request to review one or more initialcontexts from a plurality of the contextual tags associated with thecontent accessible by the mobile device; presenting the one or moreinitial contexts on the mobile device; and receiving a selection for theone or more initial contexts on the mobile device; and presentingcontent on the mobile device tagged with initial contexts that match theselected one or more initial contexts.
 14. The method of claim 1,wherein the contextual tag is expressed as a contextual tag object andwherein the behavior is expressed as a behavior object inherited by thecontextual tag object.
 15. The method of claim 1, wherein the contextualtag is associated with the content persistently in the mobile device.16. The method of claim 1, wherein the determining if a the behavior issatisfied comprises evaluating whether a logical expression associatedwith the contextual tag based on the current context is satisfied.
 17. Amobile device, comprising: a control system, comprising a microprocessorthat operates to: determine a current context of a the mobile device;determine if a behavior of a contextual tag associated with contentaccessible to the mobile device is satisfied by the current context; anddetermine if the content is to be presented on the mobile device basedon the determining if the behavior is satisfied.
 18. The mobile deviceof claim 17, wherein the control system is further adapted to presentthe content on the mobile device if the behavior is satisfied.
 19. Themobile device of claim 17, wherein the control system is further adaptedto not present the content on the mobile device if the behavior is notsatisfied.
 20. The mobile device of claim 17, wherein the control systemis adapted to determine a the current context of a the mobile device byreceiving information from at least one context sensor associated withthe mobile device.
 21. The mobile device of claim 20, wherein the atleast one context sensor is at least one sensor comprised from the groupconsisting of: a GPS sensor, a light meter, a microphone, a WiFi accesspoint, a 3G receiver, and a clock.
 22. The mobile device of claim 17,wherein the control system is adapted to determine if a behavior issatisfied by the current context by determining if a the behavior of athe contextual tag associated with the content accessible to the mobiledevice is satisfied by the current context based on an initial contextof the contextual tag.
 23. The mobile device of claim 17, wherein thecontrol system is further adapted to receive an override context from auser and replace the current context with the override context; whereinthe control system determines if a behavior is satisfied by determiningif a the behavior of a the contextual tag associated with the contentaccessible to the mobile device is satisfied by the override context.24. A non-transitory computer readable medium embodied in an article ofmanufacture and storing software adapted to execute on a microprocessorto: determine a current context of a mobile device; determine if abehavior of a contextual tag associated with content accessible to themobile device is satisfied by the current context; and determine if thecontent is to be presented on the mobile device based on the determiningif the behavior is satisfied.
 25. The non-transitory computer readablemedium of claim 24, wherein the software is further adapted to notpresent the content on the mobile device if the behavior is notsatisfied.
 26. The mobile device of claim 20, wherein the at least onecontext sensor is a combination of two or more of the group of sensorsconsisting of: a GPS sensor, a light meter, a microphone, a WiFi accesspoint, a 3G receiver, and a clock.
 27. The mobile device of claim 20,wherein the at least one context sensor is a plurality of contextsensors comprising two or more of the group of sensors consisting of: aGPS sensor, a light meter, a microphone, a WiFi access point, a 3Greceiver, and a clock.
 28. The mobile device of claim 20, wherein the atleast one context sensor is at least one light meter.
 29. The mobiledevice of claim 20, wherein the at least one context sensor is at leastone microphone.
 30. The mobile device of claim 20, wherein the at leastone context sensor is at least one WiFi access point.
 31. The mobiledevice of claim 20, wherein the at least one context sensor is at leastone 3G receiver.
 32. The mobile device of claim 20, wherein the at leastone context sensor is at least one clock.
 33. The mobile device of claim17, wherein the control system is adapted to determine the currentcontext of the mobile device by receiving information from at least twocontext sensors associated with the mobile device, and wherein the atleast two context sensors include a GPS sensor and a WiFi access point.34. The mobile device of claim 17, wherein the control system is adaptedto determine the current context of the mobile device using near fieldcommunications.
 35. The mobile device of claim 17, wherein the behavioris location.
 36. The mobile device of claim 17, wherein the contextualtag is associated with the content persistently stored in the mobiledevice.
 37. The mobile device of claim 17, wherein the content isreceived from a remote source.
 38. The mobile device of claim 17,wherein the content is streaming content received from a remote source.39. The mobile device of claim 17, wherein the current context is basedon sensing at least one of the group consisting of: internal conditionsof the mobile device, environmental conditions of the mobile device, andthe noise level of the environmental conditions through a microphone.40. The mobile device of claim 17, wherein the control system furtheroperates to: repeatedly scan the content to associate the content withcontextual tags.
 41. The mobile device of claim 17, wherein the controlsystem further operates to: automatically and dynamically contextuallyfilter content based on the current context of the mobile device. 42.The mobile device of claim 17, further comprising: a touch screen forinputting information into the mobile device.
 43. The mobile device ofclaim 17, wherein the contextual tag is assigned with built-inbehaviors.
 44. The mobile device of claim 17, wherein the contextual tagis assigned with created behaviors.
 45. The mobile device of claim 17,wherein the control system further operates to: implicitly tag contentwhen it is being played back on the mobile device.
 46. The mobile deviceof claim 17, wherein the control system further operates to: store thecontextual tag and its associated behavior in a tag table.
 47. Themobile device of claim 17, wherein the control system further operatesto determine if the behavior is satisfied by comparing an initialcontext to the current context.
 48. The mobile device of claim 47,wherein the initial context is sensed with at least one context sensor.49. The mobile device of claim 17, wherein the control system operatesto determine if the behavior of the contextual tag associated with thecontent accessible to the mobile device is satisfied by the currentcontext based on an initial context of the contextual tag.
 50. Themobile device of claim 49, wherein the contextual tag is alocation-based contextual tag, and further wherein the initial contextis an initial location of the mobile device when the contextual tag wascreated and the current context is a current location of the mobiledevice.
 51. The mobile device of claim 23, wherein the override contextincludes contextual data that was used in one of the group consistingof: the past and the recent past.
 52. The mobile device of claim 17,wherein the mobile device is a wireless device.
 53. The mobile device ofclaim 17, wherein the control system is adapted to perform multimediafunctionality selected from the group consisting of: searching,organizing, browsing, previewing, rendering, sharing, transferring, anda combination of any of these multimedia functions.
 54. The mobiledevice of claim 17, wherein the control system is adapted to receive thecontent from a wired network.
 55. The mobile device of claim 17, whereinthe control system is adapted to receive the content from a wirelessnetwork.
 56. The mobile device of claim 17, wherein the control systemis further adapted to create contextual tags when there is no networkconnection.
 57. The mobile device of claim 17, wherein the contextualtag is a composite contextual tag, and further wherein the controlsystem: determines if the behavior is satisfied by determining ifmultiple behaviors of the composite contextual tag associated withcontent accessible to the mobile device is satisfied by the currentcontext; and determines if the content is to be presented on the mobiledevice by determining if the content is to be presented on the mobiledevice based on the determining if the multiple behaviors are satisfied.58. The mobile device of claim 17, wherein the control system is furtheradapted to: for content that has no associated contextual tag, presentthe content.
 59. The mobile device of claim 17, wherein the behavior isa time of day.
 60. The mobile device of claim 17, wherein the behavioris a day of the week.
 61. The mobile device of claim 17, wherein thebehavior is a date.
 62. The mobile device of claim 17, wherein thebehavior is velocity.
 63. The mobile device of claim 17, wherein thebehavior is acceleration.
 64. The mobile device of claim 17, wherein thebehavior is direction of travel.
 65. The mobile device of claim 17,wherein the behavior is weather.
 66. The mobile device of claim 17,wherein the behavior is an amount of sunlight.
 67. The mobile device ofclaim 17, wherein the behavior is proximity to other users.
 68. Themobile device of claim 17, wherein the behavior is states ofapplications running on the mobile device.
 69. A mobile device,comprising: a control system having at least one microprocessor, whereinthe control system operates to: determine a current context of themobile device; determine if multiple behaviors of a composite contextualtag associated with content accessible to the mobile device aresatisfied by the current context; and determine if the content is to bepresented on the mobile device based on the determining if the multiplebehaviors are satisfied.
 70. The mobile device of claim 69, wherein thecontrol system is adapted to determine the current context of the mobiledevice by receiving information from a plurality of context sensorsassociated with the mobile device.
 71. The mobile device of claim 70,wherein the plurality of context sensors comprise two or more of a groupof sensors consisting of: a GPS sensor, an accelerometer, a WiFi accesspoint, a microphone, a light meter, and a clock.
 72. The mobile deviceof claim 70, wherein the plurality of context sensors comprise a contextsensor that is a combination of two or more of the group of sensorsconsisting of: a GPS sensor, a light meter, a microphone, a WiFi accesspoint, a 3G receiver, and a clock.
 73. The mobile device of claim 69,wherein the multiple behaviors comprise two or more of the groupconsisting of: location, time of day, day of the week, date, velocity,acceleration, direction of travel, weather, amount of sunlight,proximity to other users, and states of applications running on themobile device.
 74. The mobile device of claim 69, wherein the controlsystem operates to determine if the multiple behaviors of the compositecontextual tag associated with the content accessible to the mobiledevice are satisfied by the current context based on an initial contextof the composite contextual tag, and wherein the composite contextualtag is a location-based contextual tag, the initial context is aninitial location of the mobile device when the composite contextual tagwas created, and the current context is a current location of the mobiledevice.
 75. The mobile device of claim 69, wherein the compositecontextual tag is a location-based contextual tag and the currentcontext is a current location of the mobile device.
 76. A computerprogram product, the computer program product stored on a non-transitorycomputer-readable storage medium and including instructions configuredto cause a microprocessor to carry out of the steps of: determining acurrent context of a mobile device; determining if a behavior of acontextual tag associated with content accessible to the mobile deviceis satisfied by the current context; and determining if the content isto be presented on the mobile device based on the determining if thebehavior is satisfied.
 77. The computer program product of claim 76,wherein the instructions are configured to cause the microprocessor tofurther carry out the step of determining the current context of themobile device by receiving information from at least one context sensorassociated with the mobile device.
 78. The computer program product ofclaim 77, wherein the at least one context sensor comprises at least oneGPS sensor.
 79. The computer program product of claim 77, wherein the atleast one context sensor comprises a context sensor that is acombination of two or more of the group of sensors consisting of: a GPSsensor, a light meter, a microphone, a WiFi access point, a 3G receiver,and a clock.
 80. The mobile device of claim 77, wherein the at least onecontext sensor is at least one light meter.
 81. The mobile device ofclaim 77, wherein the at least one context sensor is at least onemicrophone.
 82. The mobile device of claim 77, wherein the at least onecontext sensor is at least one WiFi access point.
 83. The mobile deviceof claim 77, wherein the at least one context sensor is at least one 3Greceiver.
 84. The mobile device of claim 77, wherein the at least onecontext sensor is at least one clock.
 85. The computer program productof claim 76, wherein the behavior comprises one or more of a groupconsisting of: location, time of day, day of the week, date, velocity,acceleration, direction of travel, weather, amount of sunlight,proximity to other users, and states of applications running on themobile device.
 86. A computer program product, the computer programproduct stored on a non-transitory computer-readable storage medium andincluding instructions configured to cause a microprocessor to carry outof the steps of: determining a current context of a mobile device;determining if multiple behaviors of a composite contextual tagassociated with content accessible to the mobile device is satisfied bythe current context; and determining if the content is to be presentedon the mobile device based on the determining if the multiple behaviorsare satisfied.
 87. The computer program product of claim 86, wherein theinstructions are configured to cause the microprocessor to further carryout the step of determining the current context of the mobile device byreceiving information from a plurality of context sensors associatedwith the mobile device.
 88. The computer program product of claim 87,wherein the plurality of context sensors comprise two or more of thegroup of sensors consisting of: a GPS sensor, an accelerometer, a WiFiaccess point, a microphone, a light meter, and a clock.
 89. The computerprogram product of claim 87, wherein the plurality of context sensorscomprise a context sensor that is a combination of two or more of thegroup of sensors consisting of: a GPS sensor, a light meter, amicrophone, a WiFi access point, a 3G receiver, and a clock.
 90. Thecomputer program product of claim 86, wherein the multiple behaviorscomprise two or more of the group consisting of: location, time of day,day of the week, date, velocity, acceleration, direction of travel,weather, amount of sunlight, proximity to other users, and states ofapplications running on the mobile device.
 91. A method of filteringcontent, comprising the steps of: determining a current context of amobile device; determining if multiple behaviors of a compositecontextual tag associated with content accessible to the mobile deviceis satisfied by the current context; and determining if the content isto be presented on the mobile device based on the determining if themultiple behaviors are satisfied.
 92. The method of claim 91, whereinthe determining the current context of the mobile device comprisesreceiving information from a plurality of context sensors associatedwith the mobile device.
 93. The method of claim 92, wherein theplurality of context sensors comprise two or more of the group ofsensors consisting of: a GPS sensor, an accelerometer, a WiFi accesspoint, a microphone, a light meter, and a clock.
 94. The method of claim92, wherein the plurality of context sensors comprise a context sensorthat is a combination of two or more of the group of sensors consistingof: a GPS sensor, a light meter, a microphone, a WiFi access point, a 3Greceiver, and a clock.
 95. The mobile device of claim 75, wherein themultiple behaviors comprise two or more of the group consisting of:location, time of day, day of the week, date, velocity, acceleration,direction of travel, weather, amount of sunlight, proximity to otherusers, and states of applications running on the mobile device.
 96. Themobile device of claim 75, wherein at least one behavior of thecomposite contextual tag is location-based.